package com.ls.uav_backend.model.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import java.io.Serial;

import com.mybatisflex.core.keygen.KeyGenerators;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.crypto.KeyGenerator;

/**
 * 农作物生长指标表 实体类。
 *
 * @author <a href="https://gitee.com/Linkating">LinSkating</a>
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("crop_growth_indicators")
public class CropGrowthIndicators implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Id(keyType = KeyType.Generator, value = KeyGenerators.snowFlakeId)
    private Integer id;

    /**
     * 田地ID，关联具体地块
     */
    @Column("fieldId")
    private Integer fieldId;

    /**
     * 记录时间
     */
    @Column("recordTime")
    private LocalDateTime recordTime;

    /**
     * 叶片总数量
     */
    @Column("leafTotalCount")
    private Integer leafTotalCount;

    /**
     * 叶片平均大小（单位：cm²或cm）
     */
    @Column("leafAvgSize")
    private BigDecimal leafAvgSize;

    /**
     * 深绿色叶片占比（%）
     */
    @Column("leafDarkGreenRatio")
    private BigDecimal leafDarkGreenRatio;

    /**
     * 黄化叶片占比（%）
     */
    @Column("leafYellowingRatio")
    private BigDecimal leafYellowingRatio;

    /**
     * 枯萎叶片占比（%）
     */
    @Column("leafWitheredRatio")
    private BigDecimal leafWitheredRatio;

    /**
     * 白化叶片占比（%）
     */
    @Column("leafAlbinoRatio")
    private BigDecimal leafAlbinoRatio;

    /**
     * 植株平均高度（cm）
     */
    @Column("plantHeight")
    private BigDecimal plantHeight;

    /**
     * 已成熟植株占比（%）
     */
    @Column("maturityRipeRatio")
    private BigDecimal maturityRipeRatio;

    /**
     * 半成熟植株占比（%）
     */
    @Column("maturitySemiRipeRatio")
    private BigDecimal maturitySemiRipeRatio;

    /**
     * 未成熟植株占比（%）
     */
    @Column("maturityUnripeRatio")
    private BigDecimal maturityUnripeRatio;

    /**
     * 备注信息
     */
    private String notes;

}
